/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package DAO;

import Fachada.Fachada;
import LogicaNegocio.*;
import java.sql.*;
import java.util.Vector;

/**
 *
 * @author GEMA
 */
public class DAOServicio
{
    Fachada fachada;

    public DAOServicio()
    {
        fachada= new Fachada();
    }

    public int guardarServicio(Servicio servicio)
    {
        String sql_guardar;
        sql_guardar="INSERT INTO Servicio (codigo_servicio, descripcion_servicio, forma_venta_servicio) VALUES" +
                    "('" + servicio.getCodigoArticulo()+"','"+servicio.getDescripcionServicio()+"','" +
                    servicio.getFormaVentaServicio()+"')";

        try
        {
            Connection conexion= fachada.ConexionBaseDatos();
            Statement sentencia=conexion.createStatement();
            int numFilas= sentencia.executeUpdate(sql_guardar);
            conexion.close();
            return numFilas;
        }
        catch(SQLException e)
        {
            System.out.println(e);
        }
        catch(Exception e)
        { System.out.println(e);
        }
        return -1;
    }

    public Vector<Servicio> consultarServicios()
    {
        String sql_select;
        sql_select = "SELECT  codigo_articulo, nombre_articulo, precio_venta_articulo, codigo_categoria, cc_empleado, " +
                     "descripcion_servicio, forma_venta_servicio " +
                     "FROM Servicio S, Articulo A " +
                     "WHERE S.codigo_servicio= A.codigo_articulo";

        Vector <Servicio> vecServicio = new Vector <Servicio>();

        try
        {
            Connection conn = fachada.ConexionBaseDatos();
            Statement sentencia = conn.createStatement();
            ResultSet tabla = sentencia.executeQuery(sql_select);

            while(tabla.next())
            {
                Servicio servicio = new Servicio(tabla.getString(1),tabla.getString(2), tabla.getInt(3),tabla.getString(4),tabla.getString(5),tabla.getString(6), tabla.getString(7));
                vecServicio.addElement(servicio);
            }
            conn.close();
            System.out.println("Conexion cerrada");
            return vecServicio;
        }
        catch(SQLException e)
        {
            System.out.println(e);
            return null;
        }
        catch(Exception e)
        {
            System.out.println(e);
            return null;
        }
    }


    public int modificarDescripcionServicio(Servicio servicio)
    {
        String sql_modificar;
        sql_modificar = "UPDATE Servicio "+
                        "SET descripcion_servicio  = '" + servicio.getDescripcionServicio()+ "' " +
                        "WHERE codigo_servicio = '" + servicio.getCodigoArticulo() + "'";

        try
        {
            Connection conn = fachada.ConexionBaseDatos();
            Statement sentencia = conn.createStatement();
            int numFilas = sentencia.executeUpdate(sql_modificar);
            conn.close();
            return numFilas;
        }
        catch(SQLException e){System.out.println(e); }
        catch(Exception e){System.out.println(e); }
        return -1;
    }


    public int modificarFormaVentaServicio(Servicio servicio)
    {
        String sql_modificar;
        sql_modificar = "UPDATE Servicio "+
                        "SET forma_venta_servicio  = '" + servicio.getFormaVentaServicio()+ "' " +
                        "WHERE codigo_servicio = '" + servicio.getCodigoArticulo() + "'";

        try
        {
            Connection conn = fachada.ConexionBaseDatos();
            Statement sentencia = conn.createStatement();
            int numFilas = sentencia.executeUpdate(sql_modificar);
            conn.close();
            return numFilas;
        }
        catch(SQLException e){System.out.println(e); }
        catch(Exception e){System.out.println(e); }
        return -1;
    }


    public int eliminarServicio(String codigoServicio)
    {
        String sql_eliminar;
        sql_eliminar = "DELETE FROM Servicio "+
                        "WHERE codigo_servicio = " + "'" +codigoServicio + "'";

        try
        {
            Connection conexion = fachada.ConexionBaseDatos();
            Statement sentencia = conexion.createStatement();
            int numFilas = sentencia.executeUpdate(sql_eliminar);
            conexion.close();
            return numFilas;
        }
        catch(SQLException e)
        {System.out.println(e); }
        catch(Exception e)
        {System.out.println(e); }
        return -1;
    }

}
